package display;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.springframework.web.context.*;

import domain.CDRepository;
import domain.CD;

/**
* Clase controladora de la actualizacion de CDs.
* @version 1, 5/10/2014
*/
public class ActualizarCD extends PageController {
  
  /** 
	 * obtiene los parametros del formulario de Bandas para ser actulizados. 	 	 	 
	 * @version 1, 5/10/2014	 
	 * @return void
	 */
  public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws ServletException, IOException {

	  CDRepository objs = (CDRepository) context.getBean("CDRepository");
	    try {
			String str_pk = request.getParameter("pk_CD");
			int pk_cd = Integer.parseInt(str_pk);

			String nombre = request.getParameter("nombre");
			String anoPublicacion = request.getParameter("anoPublicacion");
			String strPrecio = request.getParameter("precio");
			double precio = 0;
			if(tryParseDouble(strPrecio)){precio = Double.parseDouble(strPrecio);}
			int fk_banda = 0;
			String strFK_banda = request.getParameter("fk_banda");
			if(tryParseInt(strFK_banda)){fk_banda = Integer.parseInt(strFK_banda);}

			CD cd = objs.find(pk_cd);
			try {
				if (nombre!=null) cd.setNombre(nombre);
				if (anoPublicacion!=null) cd.setAnoPublicacion(anoPublicacion);
				if (precio!=0) cd.setPrecio(precio);
				if (fk_banda != 0) cd.setFk_banda(fk_banda);
				
				objs.update(cd);
			} catch (Exception e) {}
	      	response.sendRedirect("listaCDs");
		} catch (Exception e) {
			request.setAttribute("mensaje",e.getMessage());
			forward("/paginaError.jsp",request,response);
		}
  }
	private boolean tryParseInt(String value)  
	{  
	     try  
	     {  
	         Integer.parseInt(value);  
	         return true;  
	      } catch(NumberFormatException nfe)  
	      {  
	          return false;  
	      }  
	}
	private boolean tryParseDouble(String value)  
	{  
	     try  
	     {  
	         Double.parseDouble(value);  
	         return true;  
	      } catch(NumberFormatException nfe)  
	      {  
	          return false;  
	      }  
	}

}